package com.my.rouge.utils;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//统一返回值
//  T代表一个类型参数,任意类型
@NoArgsConstructor   //无参数构造方法
@AllArgsConstructor  //全参数构造方法
@Data
public class Result<T> {
    //业务状态码 0-成功 1-失败
    private Integer code;
    //提示信息
    private String message;
    //响应数据  T 什么类型都可以
    private T data;

    //快速返回操作成功的响应结果（带响应数据）
    public static <E> Result<E> success(E data){
        return new Result<>(0,"操作成功",data);
    }

    //快速返回操作成功的响应结果
    public static Result success(){
        return new Result(0,"操作成功",null);
    }
    //快速返回操作失败结果
    public static Result error(String message){
        return new Result(1,message,null);
    }
}
